# This file is part of The Vu Toolkit.
#
# The Vu Toolkit is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 3.0 of the License, or (at your option) any later version.
#
# The Vu Toolkit is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with The Vu Toolkit; if not, write to the Free
# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
# 02111-1307 USA.
#
# Copyright © Zak Fenton 2008
#

module Vu::SVG
	# A rectangle, possibly with rounded edges ("rect" element in SVG).
	class Rect < Shape
		# Gives us our basic shape
		include XYWidthHeight
		
		# Sets X radius (to a number or abstract)
		def rx= (r)
			@rx = r
			@ry = r unless @ry
		end
		
		# X radius
		def rx
			@rx
		end
		
		# Sets Y radius (to a number or abstract)
		def ry= (r)
			@ry = r
			@rx = r unless @ry
		end
		
		# Y radius
		def ry
			@ry
		end
		
		def trace_to_cairo (cr)
			if rx
				cr.rounded_rectangle(x,y,width,height,rx,ry)
			else
				cr.rectangle(x,y,width,height)
			end
		end
		
		def contains? (mx,my)
			mx >= x and my >= y and mx < x+width and my < y+height
		end
		
		def bounds_modified
		end
	end
end

